Aspects of this invention relate to performing default software actions in response to events occurring at a computer. In recent years, the numbers of electronic formats for media files and documents has grown significantly. As computers have become larger and more powerful tools, they have also attempted to become compatible with these various electronic media and document formats. Computers today will typically support many different methods of creating and storing an electronic document. For example, in a typical personal computer, a user who creates a new image file can store that image as a JPEG, GIF, TIFF, PNG, BMP, or any of several other image formats. This abundance of electronic formats also applies for video files, audio files, other document types such as word processing documents, and protocols such as internet and email protocols.
As the number of electronic file and protocol formats has grown, so has the number of software programs installed on the typical personal computer able to view and interact with those files and protocols. A single computer might have several different software programs each capable of interpreting and/or otherwise interacting with various file formats. For example, a user may have many image viewer and editor programs capable of interpreting and displaying a JPEG image.
To prevent user confusion between software applications with similar capabilities, users can associate a default application, or handler, with a specific file type. However, different users of a single computer may each prefer a different default software application for an event. Many current applications and operating system utilities respond to this situation by overwriting one user's default software handler and replacing it with another. For example, as part of the Windows® XP operating system made by Microsoft Corporation, a computer network protocol could have only one default handler that would apply to every user on the computer. Additionally, many applications will carelessly or maliciously overwrite the existing system-level default handler and assign themselves as the system-wide default application for each compatible file type or protocol.
Users attempting to change their default handlers for specific events may encounter several problems. First, a user may not know the file extension or protocol corresponding to an event, and the user may not know every file type and protocol supported by his or her favorite software applications. Second, user-level defaults are not widely used for file extension events (e.g., a user opening up a file with a specific extension), and are not even available for protocol events (e.g., opening up a resource location with a specific protocol) and many other event types, such as certain hardware events. Finally, different users and different applications will often compete for the system-level default handlers, and will frequently overwrite defaults previously set by another user or application.
Referring to FIG. 2, a flowchart is shown illustrating some of these problems. In step 201, User A sets a default handler program for playing digital music on a computer, and in step 203, User A opens a digital music file and plays the file with the default handler. However, in step 205, User B overwrites the system-level default handler set by User A with a different default handler for playing digital music. Thus, User A resets her default handler in step 207, before opening another digital music file in step 209. However, in step 211, an application installed on the same computer by User C overwrites User A's default handler and designates itself as the new system-level default digital music handler, thus prompting User A to once again reset her preferred default handler in step 213 before opening another digital music file in step 215.